With development of network and wide application of computer technologies, people require increasingly higher performance of a storage system. A Redundant Array of Independent Disks (RAID) adopts methods of striping and redundancy to improve the capacity, the speed, and the reliability of the storage system, so as to become the preferred structure of high performance data storage. The basic concept of the disk array technology has two aspects: data striping is applied to improve the performance and the data redundancy is applied to improve the reliability. Until now, most systems are designed to tolerate a single-disk fault. The design principle of the single-disk fault is that the disk sending faults are fewer, after one disk fault occurs, and before another fault occurs, the disk may have enough time to be recovered from the fault.
With development of the disk technologies and the requirement of users for high performance storage systems, the single-disk fault-tolerance increasingly becomes insufficient. First, the scale of the disk array is continuously increased, increasingly more disks are grouped in one array, correspondingly, the possibility that multiple disk faults occur in one array is increased. Second, the increasing of the capacity of the disk is faster than the increasing of the data access speed, and the time for rebuilding one disk is increased, so that the time window of the disk fault is extended after the array is generated during a procedure of rebuilding one disk. Third, the increasing of the medium storage density results in the decreasing of the reliability of the disk. Fourth, due to the relativity of the disk faults during the actual application and the impact of the external environment and internal elements of the disk, the disk faults are interrelated, which results in that the possibility that multiple disk faults occur in short time is greatly increased.
The conventional technologies of recovering from the multi-disk faults in one disk array may be mainly divided into double-check, double-mirror, RAID51 type, and an improved model mode thereof. In the double-mirror mode, the data is mirrored twice, so that three copies of the data are acquired, for each writing request, three disk write operations need to be incurred to update each of the copies, and storage space being triple of that of an unprotected array needs to be used.
In the RAID51 type mode, the single-disk fault is prevented from damaging the data, and the RAID5 array is mirrored to protect up to three random disk faults, for one write request, two disk read operations and four disk write operations are incurred. In the double-check mode, the RAID5 type mode is expanded to double-check, under the mode, each write request incurs at least three disk read operations and three disk write operations.
The RAID6 is a double-disk fault-tolerant method of a double-check type mode. Compared with other levels of RAID, the RAID6 has two increased independent fault checking blocks, that is, a check block P and a check block Q, where each strip includes two checking units, that is, a P checking unit and a Q checking unit, where P adopts the parity check code, and Q adopts Reed-Solomon or other check code. When a single-disk fault occurs, P+Q RAID is changed to RAID 5 of N+1 parity check. When a double-disk fault occurs, P+Q RAID is changed to RAID0 without the fault-tolerant capability.
During the implementation of the present invention, inventors find that in the prior art, when the RAID6 performs data processing, Galois field conversion is required, and the conversion procedure requires complex multiply-add operations, so that the calculation complexity is high.